package com.palmshop.online.dao;

import java.util.List;
import java.util.Map;
import com.palmshop.online.entity.CusAddr;
import com.palmshop.online.entity.CusPoints;
import com.palmshop.online.entity.Customer;

/**
 * 用户相关信息的dao
 * @author quan
 *
 */
public interface CusDao {
	
	
	
	/**
	 * 用户注册
	 * @param cus:用户实体类
	 * @return int
	 */
	public int addCus(Customer cus);
	
	/**
	 * 注册验证 当前用户是否已注册
	 * @param cusAccount:用户名
	 * @return list
	 */
	public List<Map<String,Object>>findCusExist(String cusAccount);
	
	/**
	 * 登录验证
	 * @param map
	 * @return list
	 */
	public List<Map<String,Object>>findCheckLogin(Map<String,Object> map);
	
	/**
	 * 根据用户唯一性标识查询用户的基本信息
	 * @param cusUnique：用户唯一性标识
	 * @return list
	 */
	public List<Map<String,Object>>findCusById(String cusUnique);
	
	/**
	 * 根据用户的id修改对应的用户基本信息
	 * @param cus:用户的实体类
	 * @return int
	 */
	public int updateCusById(Customer cus);
	
	/**
	 * 将该用户下的地址设为非默认地址
	 * @param cusUnique:用户唯一性标识
	 * @return int
	 */
	public int updateAddrDefByCus(String cusUnique);
	
	/**
	 * 根据地址id将该地址设为默认地址
	 * @param addrId：地址id
	 * @return int
	 */
	public int updateAddrDefById(Integer addrId);
	
	
	/**
	 * 根据用户id修改对应的用户密码
	 * @param map
	 * @return int
	 */
	public int updatePassWord(Map map);
	
	/**
	 * 根据用户id确认密码是否正确
	 * @param map
	 * @return list
	 */
	public List<Map<String,Object>>findRWByCusId(Map map);
	
	/**
	 * 根据用户的邮箱找回密码
	 * @param cusEmail:用户邮箱
	 * @return list
	 */
	public List<Map<String,Object>>findPwd(String cusEmail);
	
	
	
	/*ssssssssssssssssss用户积分sssssssssssssssssssssssssssssss*/
	
	public int addPoints(CusPoints points);
	
	/**
	 * 修改积分
	 * @param map
	 * @return int
	 */
	public int updatePointsById(Map map);
	
	/**
	 * 根据用户的id查询对应的积分信息
	 * @param cusUnique:用户唯一性标识
	 * @return list
	 */
	public List<Map<String,Object>>findPointsById(String cusUnique);
	
	/**
	 * 查询积分信息是否存在
	 * @param map
	 * @return list
	 */
	public List<Map<String,Object>>findPointsExistById(Map map);
	
	
	
	
	/*end用户地址end*/
	
	/*ssssssssssssssssss用户地址sssssssssssssssssssssssssssssss*/
	
	/**
	 * 向收货地址表中插入一条新的数据
	 * @param cusAddr:用户地址的实体类
	 * @return int
	 */
	public int addAddr(CusAddr cusAddr);
	
	/**
	 * 根据地址id删除对应的地址信息
	 * @param addrId:地址id
	 * @return int
	 */
	public int deleteAddr(Integer addrId);
	

	/**
	 * 根据地址id修改对应的地址信息
	 * @param map
	 * @return int
	 */
	public int updateAddrById(Map map);
	
	/**
	 * 根据地址id查询对应的地址信息
	 * @param addrId：地址id
	 * @return list
	 */
	public List<Map<String,Object>>findAddrByIdA(Integer addrId);
	
	/**
	 * 根据用户唯一性标识查询对应的地址信息
	 * @param cusUnique：用户唯一性标识
	 * @return list
	 */
	public List<Map<String,Object>>findAddrByCusId(String cusUnique);

	/**
	 * 根据用户唯一性标识查询对应的默认地址信息
	 * @param cusUnique：用户唯一性标识
	 * @return list
	 */
	public List<Map<String,Object>>findAddrById(String cusUnique);
	
	/*end用户地址end*/
	
	
	
	
	
	
	
	
	
	
	
	
}

	
